const main = require('../main/main');
const sale =require('../main/datbase');
const printInventory = require('../main/main');
describe('pos', function () {
    var allItems;
    var inputs;

    beforeEach(function () {
        allItems = sale.loadAllItems();
        inputs = [
            'ITEM000001',
            'ITEM000001',
            'ITEM000001',
            'ITEM000001',
            'ITEM000001',
            'ITEM000003-2',
            'ITEM000005',
            'ITEM000005',
            'ITEM000005'
        ];
    });

    it('should print correct text', function () {

        spyOn(console, 'log');  

        printInventory.main(inputs);

        var expectText =
            '***<没钱赚商店>购物清单***\n' +
            '名称：雪碧，数量：5瓶，单价：3.00(元)，小计：12.00(元)\n' +
            '名称：荔枝，数量：2斤，单价：15.00(元)，小计：30.00(元)\n' +
            '名称：方便面，数量：3袋，单价：4.50(元)，小计：9.00(元)\n' +
            '----------------------\n' +
            '挥泪赠送商品：\n' +
            '名称：雪碧，数量：1瓶\n' +
            '名称：方便面，数量：1袋\n' +
            '----------------------\n' +
            '总计：51.00(元)\n' +
            '节省：7.50(元)\n' +
            '**********************';

        expect(console.log).toHaveBeenCalledWith(expectText);
    });
    it("去掉-",function(){
        let inputs= [
            'ITEM000001',
            'ITEM000001',
            'ITEM000001',
            'ITEM000001',
            'ITEM000001',
            'ITEM000003-2',
            'ITEM000005',
            'ITEM000005',
            'ITEM000005'
        ];
        let outputs=main.easy(inputs);
        let want= [
            'ITEM000001',
            'ITEM000001',
            'ITEM000001',
            'ITEM000001',
            'ITEM000001',
            'ITEM000003',
            'ITEM000003',
            'ITEM000005',
            'ITEM000005',
            'ITEM000005'
        ];
        expect(inputs).toEqual(want);
    })
    it('统计',function(){
        let input=[
            'ITEM000001',
            'ITEM000001',
            'ITEM000001',
            'ITEM000001',
            'ITEM000001',
            'ITEM000003',
            'ITEM000003',
            'ITEM000005',
            'ITEM000005',
            'ITEM000005'
        ];
        let want=[{barcode:'ITEM000001',count: 5},{barcode:'ITEM000003',count:2 },{barcode:'ITEM000005',count:3}];
        let outputs=main.count(input);
        expect(outputs).toEqual(want);
    })
    it('补全信息',function(){
        let input=[{barcode:'ITEM000001',count: 5},{barcode:'ITEM000003',count:2 },{barcode:'ITEM000005',count:3}];
        let want=[{barcode:'ITEM000001',count: 5, name: '雪碧',unit: '瓶',price: 3.00},
        {barcode:'ITEM000003',count:2 , name: '荔枝',unit: '斤',price: 15.00},
        {barcode:'ITEM000005',count:3, name: '方便面',unit: '袋',price: 4.50}];
        let outputs=main.long(input);
        expect(outputs).toEqual(want);
    })
    it('加上促销信息',function(){
        let input=[{barcode:'ITEM000001',count: 5, name: '雪碧', unit: '瓶',price: 3.00},
                  {barcode:'ITEM000003',count:2, name: '荔枝',unit: '斤',price: 15.00},
                  {barcode:'ITEM000005',count:3, name: '方便面',unit: '袋',price: 4.50}];
        let want=[{barcode:'ITEM000001',count: 4, name: '雪碧', unit: '瓶',price: 3.00,sale: 1},
                  {barcode:'ITEM000003',count:2, name: '荔枝',unit: '斤',price: 15.00,sale: 0},
                  {barcode:'ITEM000005',count:2, name: '方便面',unit: '袋',price: 4.50,sale:1}];
        let outputs=main.less(input);
        expect(outputs).toEqual(want);

    })
});